<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2016/12/26 0026
 * Time: 19:00
 */

namespace Home\Action;


use Think\Controller;

class AppClientAction extends Controller{

    /**
     * 用途：获取首页广告列表
     * 输出格式：json
     * 输出结构:{[adId:广告Id  adName:广告名  adURL:广告链接  adFile: 广告图片路径],.......}
     */
    public function getIndexAd(){
       $this->ajaxReturn(WSTAds(-1));
    }

    /**
     * 用途：获取商铺类型列表
     * 输出格式：json
     * 输出结构:{[catId:类型Id  catName:类型名,catChidren:子类型],........}
     */
    public function getShopCategory(){
        $this->ajaxReturn(WSTGoodsCats());
    }

    /**
     * 用途：获取人气会员列表
     * @param $num  会员数量    传参方式：get   必须
     * 输出格式：json
     * 输出结构：{[userId:用户Id,userName:用户名,userSex:用户性别,userAge:年龄,userDesc:简介,userPhoto:头像],.....}
     */
    public  function getHotMember($num){
        $memberList = M("Users")->field("userId,userName,userSex,userAge,userDesc,userPhoto")->
        where(array("userStatus"=>1))->order("userScore desc")->limit($num)->select();
        $this->ajaxReturn($memberList);
    }

    /**
     * 用途：根据商铺类型Id 获取商铺信息列表
     * 传参方式：get
     * @param $catId  商铺类型Id    必须
     * @param $pageNo   第几页         必须
     * @param $pageSize 分页大小    必须
     * @param $lat      当前位置纬度     必须
     * @param $lng      当前位置经度      必须
     * 输出格式：json
     * 输出结构：{[shopId:商铺Id,shopName:商铺名称,shopImg:商铺图片,distance:商铺距离],................}
     */
    public function getShopsByCat($catId,$pageNo,$pageSize,$lat,$lng){
        $this->ajaxReturn( M("shops")->query("call proc_getShopsByCat($catId,$pageNo,$pageSize,$lat,$lng)"));
      //  $test = M("shops")->query(" call proc_getShopsByCat(47,1,5,30.620076,104.067221)");

    }


    /**
     * 用途：获取短信验证码
     * 传参方式  get
     * @param $phone     手机号码
     * 输出格式：json
     * 输出结构  {status:0/1}    0代表短信发送失败
     */
    public function getPhoneCheckCode($phone){
        $result["status"] = 0;
        $length = 4;
        $code = rand(pow(10,($length-1)), pow(10,$length)-1);
        if($this->sendSms($code,$phone)){
            $checkCode['code'] = $code;
            $checkCode['createTime'] = time();
            session("checkCode",$checkCode);
            $result["status"] = 1;
        }
        $this->ajaxReturn($result);

    }

    /**
     * 用途：验证手机号码是否已注册
     * @param $phone  手机号码
     * 输出格式：json
     * 输出结构  {status:0/1}    1  未注册
     */
    public function checkPhone($phone){
        $result = D("Home/Users")->checkLoginKey($phone);
       $this->returnAjax($result);
    }

    /**
     * 用途：用户注册
     * 输入参数：phone:手机号码   code：验证码   pwd：密码
     * 传参方式：post
     * 输出：{status:状态码，msg:信息}  status = 0/1  失败/成功
     */
    public function checkLogin(){
        $result["status"] = 0;
        if(IS_POST){
            $checkPhone = D("Home/Users")->checkLoginKey(I("post.phone"));
            if($checkPhone["status"] != 1){
                $result["msg"] = "该用户已注册";
            }else if(time() > strtotime('+2 min',intval(session("checkCode.createTime")))){
                $result["msg"] = "验证码超时";

            }else if(I("post.code") != session("checkCode.code")){
                $result["msg"] = "验证码无效";
            }else{
               $data["loginName"] = I("post.phone");
                $data["loginPwd"] = I("post.pwd");
                if(!M("Users")->add($data)){
                    $result["msg"] = "注册错误";
                }else{
                    $result["status"] = 1;
                    $result["msg"] = "注册成功";
                }
            }

            $this->ajaxReturn($result);
        }
    }

    private function sendSms($code,$to){
        ini_set('max_execution_time', '0');


        $options['accountsid'] = C("ACCOUNT_SID");
        $options['token'] = C("SMS_TOKEN");
        $ucpass = new \Vendor\Ucpaas\Ucpaas($options);
        $appId = C("SMS_APP_ID");

        //$to="18078131892";
        $templateId = C("SMS_TMP_ID");


       $result = $ucpass->templateSMS($appId, $to, $templateId, "$code ");
        return !$result;


    }


}